home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 424_02 / ED-157 / calc_limits.c < prev    next >
C/C++ Source or Header  |  1993-09-10  |  1KB  |  47 lines

  1. /*
  2.  * Copyright (C) 1992 by Rush Record (rhr@clio.rice.edu)
  3.  * 
  4.  * This file is part of ED.
  5.  * 
  6.  * ED is free software; you can redistribute it and/or modify it under the terms
  7.  * of the GNU General Public License as published by the Free Software Foundation.
  8.  * 
  9.  * ED is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
  10.  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  11.  * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
  12.  * 
  13.  * You should have received a copy of the GNU General Public License along with ED
  14.  * (see the file COPYING).  If not, write to the Free Software Foundation, 675
  15.  * Mass Ave, Cambridge, MA 02139, USA.
  16.  */
  17. #include "opsys.h"
  18.  
  19. #include "handy.h"
  20.  
  21. /******************************************************************************\
  22. |Routine: calc_limits
  23. |Callby: bigger_win edit insert_win remove_win smaller_win
  24. |Purpose: Calculates the area in which the cursor may move without causing
  25. |         the window to scroll.
  26. |Arguments:
  27. |    top,bot are the top and bottom rows of the window.
  28. |    topl,botl are the top and bottom rows of the free-movement area.
  29. \******************************************************************************/
  30. void calc_limits(top,bot,topl,botl)
  31. Int top,bot,*topl,*botl;
  32. {
  33.     Int wid;
  34.  
  35.     if((wid = bot - top + 1) < 3)
  36.     {
  37.         *topl = top;
  38.         *botl = bot;
  39.     }
  40.     else
  41.     {
  42.         *topl = max(top + 1,top + wid / 3);
  43.         *botl = min(bot - 1,bot - wid / 3);
  44.     }
  45. }
  46.  
  47.